#include <stdio.h>
#include <string.h>

void merge(int *arr,int l,int r,int n,int *temp)
{
	int t;
	if(r - l < 2)
	{
		if(arr[r] < arr[l])
		{
			t = arr[r];
			arr[r] = arr[l];
			arr[l] = t;
		}
		return;
	}
	int mid = (l + r) / 2;
	merge(arr,l,mid,n,temp);
	merge(arr,mid + 1,r,n,temp);
	memcpy(temp,arr,n * sizeof(int));
	int z = l,i = l,j = mid + 1;
	while(i <= mid && j <= r)
	{
		if(temp[i] > temp[j])
		{
			arr[z++] = temp[j++];
		}
		else
		{
			arr[z++] = temp[i++];
		}
	}
	while(i <= mid)
	{
		arr[z++] = temp[i++];
	}
	while(j <= r)
	{
		arr[z++] = temp[j++];
	}
}

void merge_sort(int *arr,int n,int *temp)
{
	merge(arr,0,n - 1,n,temp);
}

int main()
{
	int i,arr[100],temp[100];
	for(i = 0;i < 100;i++)
	{
		scanf("%d",&arr[i]);
	}
	merge_sort(arr,100,temp);
	for(i = 0;i < 100;i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
	return 0;
}
